// 将对象组合成树形结构，以表示“整体-部分”的层次结构。
// 通过对象的多态表现，使得用户对单个对象和组合对象的使用具有一致性。
class TrainOrder {
    create() {
        console.log("创建火车票订单");
    }
}
class HoteOrder {
    create() {
        console.log("创建酒店订单");
    }
}

class TotalOrder {
    constructor() {
        this.orderList = [];
    }
    addOrder(order) {
        this.orderList.push(order);
    }
    create() {
        for (const order of this.orderList) {
            order.create();
        }
        return this;
    }
}

function main() {
    let trainOrder = new TrainOrder();
    let hoteOrder = new HoteOrder();
    let totalOrder = new TotalOrder();
    totalOrder.addOrder(trainOrder);
    totalOrder.addOrder(hoteOrder);
    totalOrder.create();
}
main();
